Scan optimization using data selection across wordline of a memory array

ABSTRACT

A system includes a memory array of sub-blocks, each sub-block including groups of memory cells, and a processing device. The processing device causes a first wordline to be programmed through the sub-blocks with a mask by causing to be programmed, to a first voltage level: a first group of memory cells of a first sub-block; and a second group of memory cells of a second sub-block. The processing device further scans a second wordline that has been programmed and is coupled to the first wordline, scanning includes: causing a custom wordline voltage to be applied to the second wordline, the custom wordline voltage to select groups of memory cells corresponding to those of the first wordline programmed to the first voltage level; concurrently reading data from the selected groups of memory cells of the second wordline; and performing, using the data, an error check of the second wordline.

RELATED APPLICATIONS

The present application is a divisional of U.S. patent application Ser.No. 17/247,633, filed Dec. 18, 2020, which is incorporated by referenceherein.

TECHNICAL FIELD

Embodiments of the disclosure are generally related to memorysub-systems, and more specifically, relate to scan optimization usingdata selection across wordline of a memory array.

BACKGROUND

A memory sub-system can include one or more memory devices that storedata. The memory devices can be, for example, non-volatile memorydevices and volatile memory devices. In general, a host system canutilize a memory sub-system to store data at the memory devices and toretrieve data from the memory devices.

BRIEF DESCRIPTION OF THE DRAWINGS

The present disclosure will be understood more fully from the detaileddescription given below and from the accompanying drawings of someembodiments of the disclosure.

FIG. 1 illustrates an example computing system that includes a memorysub-system in accordance with some embodiments.

FIG. 2A is an example schematic diagram of data selection from multiplesub-blocks of a wordline for performing scanning of the wordline, inaccordance with some embodiments.

FIG. 2B is a further example schematic diagram of data selection frommultiple sub-blocks of a wordline for performing scanning of thewordline, in accordance with some embodiments.

FIG. 3A is an example schematic diagram of using a mask wordline fordata selection from multiple sub-blocks of a wordline for performingscanning of the wordline, in accordance with some embodiments.

FIG. 3B is an example gate diagram version of the schematic diagram ofFIG. 3A, in accordance with an embodiment.

FIG. 4A is a graph illustrating a first set of read voltage levelsemployed in a mask mode for writing a memory array, in accordance withan embodiment.

FIG. 4B is graph illustrating a second set of read voltage levelsemployed in a data mode for writing a memory array, in accordance withan embodiment.

FIG. 5 is a flow diagram of an example method of selecting data frommultiple sub-blocks of a wordline for performing scanning of thewordline, in accordance with some embodiments.

FIG. 6 is a flow diagram of an example method of employing a mask forselecting data from multiple sub-blocks of a wordline for performingscanning of the wordline, in accordance with some embodiments.

FIG. 7 is a block diagram of an example computer system in whichembodiments of the present disclosure can operate.

DETAILED DESCRIPTION

Embodiments of the present disclosure are directed to scan optimizationusing data selection across wordline of a memory array. A memorysub-system can be a storage device, a memory module, or a hybrid of astorage device and memory module. Examples of storage devices and memorymodules are described below in conjunction with FIG. 1 . In general, ahost system can utilize a memory sub-system that includes one or morecomponents, such as memory devices that store data. The host system canprovide data to be stored at the memory sub-system and can request datato be retrieved from the memory sub-system.

A memory device can be a non-volatile memory device. One example ofnon-volatile memory devices is a negative-and (NAND) memory device.Other examples of non-volatile memory devices are described below inconjunction with FIG. 1 . A non-volatile memory device is a package ofone or more dice. Each die can consist of one or more planes. Planes canbe groups into logic units (LUN). For some types of non-volatile memorydevices (e.g., NAND devices), each plane consists of a set of physicalblocks. Each block consists of a set of pages. Each page consists of aset of memory cells (“cells”). A cell is an electronic circuit thatstores information. Depending on the cell type, a cell can store one ormore bits of binary information, and has various logic states thatcorrelate to the number of bits being stored. The logic states can berepresented by binary values, such as “0” and “1”, or combinations ofsuch values.

A memory device can be made up of bits arranged in a two-dimensionalgrid, also referred to as a memory array. Memory cells are etched onto asilicon wafer in an array of columns (also hereinafter referred to asbitlines) and rows (also hereinafter referred to as wordlines). Awordline can refer to one or more rows of memory cells of a memorydevice that are used with one or more bitlines to generate the addressof each of the memory cells. The intersection of a bitline and wordlineconstitutes the address of the memory cell.

Various access operations can be performed on the memory cells. Forexample, data can be written to, read from, and erased from memorycells. Memory cells can be grouped into a write unit, such as a page.For some types of memory devices, a page is the smallest write unit. Awordline can have multiple pages on the same wordline grouped assub-blocks. On sub-block is typically accessed at any given time.Although each sub-block has its own set of bitlines, the sub-blocksshare a common page buffer or sense-amplifier.

In conventional memory systems, such as NAND, the controller (e.g.,processing device) uses scans to check the integrity of the pages. Thesepages are marked by sub-block boundary per wordline, and are thusreferred to hereinafter as sub-blocks. Because defects can manifestthemselves local to a sub-block, defect or non-defect scans areperformed on each individual sub-block of a wordline. For example, datacan be read from each sub-block of the wordline in turn and an errorcheck performed on the data. Scans can be performed in conjunction withtemporary RAIN parity scheme (e.g., outside of a defect blast radius inthe case of a defect that is detected), other types of error detection,and/or for detection of intrinsic stresses of memory cells of eachsub-block, in the case of non-defect scans. If the scanned sub-blocksare error free, their integrity is intact and no corrective action needbe taken. Performing scanning of each sub-block of the wordline requiressignificant processing overhead, and is thus costly. For example, suchscanning consumes resources of the memory sub-system controller andbandwidth of a local media controller of the memory device (e.g., NAND).

Aspects of the present disclosure address the above and otherdeficiencies through, when performing scanning of a memory device,selecting particular groups of memory cells in each sub-block ofmultiple sub-blocks of the wordline from which to sample data, andperforming error checks on the sampled data. In one embodiment, eachgroup of memory cells corresponds to a bitline or column in the memoryarray. The selected groups of memory cells across the multiplesub-blocks can, for example, be sequentially numbered to vary theselected groups of memory cells from each respective sub-block. Othertypes of rotating numbering schemes for the sampled groups of memorycells are envisioned. In one embodiment, a group of sense amplifiersthat are multiplexed across the sub-blocks (e.g., to read each sub-blockone at a time) is repurposed so that each sense amplifier of the groupof sense amplifiers samples different groups of memory cells from eachrespective sub-block of the multiple sub-blocks. In this way, a type ofpseudo-page is selected across the multiple sub-blocks to be read at thesame time (e.g., concurrently), thus reducing the overhead costsassociated with multiple reads of individual sub-blocks, andcorresponding error check of each sub-block. Because at least a chunk ofdata is sampled form each sub-block, all of the multiple sub-blocks areeffectively scanned as a set, e.g., pseudo-page.

In an alternative embodiment, repurposing of the sense amplifiers tosample groups of memory cells across multiple sub-blocks may not bepossible where each entire sub-block shares a select gate enable signalwith respect to the group of sense amplifiers. In such embodiments, awordline is selected from potentially hundreds of wordlines, and iscaused to be programmed with a mask. The mask can result in the selectedgroups of memory cells from each respective sub-block of the multiplesub-blocks being programmed at a first voltage level and the remainderof the groups of memory cells of the multiple sub-blocks beingprogrammed with at a second voltage level. In one embodiment, the firstvoltage level is lower than the second voltage level, although theopposite can be true in another embodiment.

In the alternative embodiment, when scanning is performed on a secondwordline (or some wordline other than the mask wordline) that is coupledto the mask wordline, the processing device causes a custom wordlinevoltage to be applied to the second wordline. The custom wordlinevoltage is adapted to select groups of memory cells across the multiplesub-blocks of the second wordline corresponding to those of the maskwordline programmed to the first voltage level, and to unselect groupsof memory cells of the multiple sub-blocks corresponding to those of themask wordline programmed to the second voltage level. The processingdevice can then concurrently read data from the selected groups of thememory cells of the second wordline and ignore data from the unselectedgroups of the memory cells. The processing device can then perform anerror check of the wordline using the data concurrently read from theselected groups of the memory cells. In this way, the select gate enablesignal is bypassed and the multiple sub-blocks are sampled as before,and as will be discussed, with reference to the first embodiment forpurposes of error detection.

Therefore, advantages of the systems and methods implemented inaccordance with some embodiments of the present disclosure include, butare not limited to, significantly reducing (e.g., by around 75%) theoverhead costs of reading data of each individual sub-block (e.g., page)by instead sampling only a group of memory cells from each sub-blockwhen performing scanning. The principles of the present disclosurereduce the number of read operations required to perform scanning ofeach wordline, and also reduces the amount of data required to beprocessed during error checking of the data read from the wordline. Notonly are resources reduced that are required of the memory sub-systemcontroller to perform the scanning, but bandwidth consumption by a localmedia controller of the memory device is also reduced. Other advantageswill be apparent to those skilled in the art of scanning of programmedwordlines within a memory sub-system discussed hereinafter.

FIG. 1 illustrates an example computing system 100 that includes amemory sub-system 110 in accordance with some embodiments of the presentdisclosure. The memory sub-system 110 can include media, such as one ormore volatile memory devices (e.g., memory device 140), one or morenon-volatile memory devices (e.g., memory device 130), or a combinationof such.

A memory sub-system 110 can be a storage device, a memory module, or acombination of a storage device and memory module. Examples of a storagedevice include a solid-state drive (SSD), a flash drive, a universalserial bus (USB) flash drive, an embedded Multi-Media Controller (eMMC)drive, a Universal Flash Storage (UFS) drive, a secure digital (SD)card, and a hard disk drive (HDD). Examples of memory modules include adual in-line memory module (DIMM), a small outline DIMM (SO-DIMM), andvarious types of non-volatile dual in-line memory modules (NVDIMMs).

The computing system 100 can be a computing device such as a desktopcomputer, laptop computer, network server, mobile device, a vehicle(e.g., airplane, drone, train, automobile, or other conveyance),Internet of Things (IoT) enabled device, embedded computer (e.g., oneincluded in a vehicle, industrial equipment, or a networked commercialdevice), or such computing device that includes memory and a processingdevice.

The computing system 100 can include a host system 120 that is coupledto one or more memory sub-systems 110. In some embodiments, the hostsystem 120 is coupled to multiple memory sub-systems 110 of differenttypes. FIG. 1 illustrates one example of a host system 120 coupled toone memory sub-system 110. As used herein, “coupled to” or “coupledwith” generally refers to a connection between components, which can bean indirect communicative connection or direct communicative connection(e.g., without intervening components), whether wired or wireless,including connections such as electrical, optical, magnetic, etc.

The host system 120 can include a processor chipset and a software stackexecuted by the processor chipset. The processor chipset can include oneor more cores, one or more caches, a memory controller (e.g., NVDIMMcontroller), and a storage protocol controller (e.g., PCIe controller,SATA controller). The host system 120 uses the memory sub-system 110,for example, to write data to the memory sub-system 110 and read datafrom the memory sub-system 110.

The host system 120 can be coupled to the memory sub-system 110 via aphysical host interface. Examples of a physical host interface include,but are not limited to, a serial advanced technology attachment (SATA)interface, a peripheral component interconnect express (PCIe) interface,universal serial bus (USB) interface, Fibre Channel, Serial AttachedSCSI (SAS), a double data rate (DDR) memory bus, Small Computer SystemInterface (SCSI), a dual in-line memory module (DIMM) interface (e.g.,DIMM socket interface that supports Double Data Rate (DDR)), etc. Thephysical host interface can be used to transmit data between the hostsystem 120 and the memory sub-system 110. The host system 120 canfurther utilize an NVM Express (NVMe) interface to access components(e.g., memory devices 130) when the memory sub-system 110 is coupledwith the host system 120 by the physical host interface (e.g., PCIebus). The physical host interface can provide an interface for passingcontrol, address, data, and other signals between the memory sub-system110 and the host system 120. FIG. 1 illustrates a memory sub-system 110as an example. In general, the host system 120 can access multiplememory sub-systems via a same communication connection, multipleseparate communication connections, and/or a combination ofcommunication connections.

The memory devices 130, 140 can include any combination of the differenttypes of non-volatile memory devices and/or volatile memory devices. Thevolatile memory devices (e.g., memory device 140) can be, but are notlimited to, random access memory (RAM), such as dynamic random accessmemory (DRAM) and synchronous dynamic random access memory (SDRAM).

Some examples of non-volatile memory devices (e.g., memory device 130)include a negative-and (NAND) type flash memory and write-in-placememory, such as a three-dimensional cross-point (“3D cross-point”)memory device, which is a cross-point array of non-volatile memorycells. A cross-point array of non-volatile memory cells can perform bitstorage based on a change of bulk resistance, in conjunction with astackable cross-gridded data access array. Additionally, in contrast tomany flash-based memories, cross-point non-volatile memory can perform awrite in-place operation, where a non-volatile memory cell can beprogrammed without the non-volatile memory cell being previously erased.NAND type flash memory includes, for example, two-dimensional NAND (2DNAND) and three-dimensional NAND (3D NAND).

Each of the memory devices 130 can include one or more arrays of memorycells. One type of memory cell, for example, single level cells (SLC)can store one bit per cell. Other types of memory cells, such asmulti-level cells (MLCs), triple level cells (TLCs), quad-level cells(QLCs), and penta-level cells (PLCs) can store multiple bits per cell.In some embodiments, each of the memory devices 130 can include one ormore arrays of memory cells such as SLCs, MLCs, TLCs, QLCs, PLCs or anycombination of such. In some embodiments, a particular memory device caninclude an SLC portion, and an MLC portion, a TLC portion, a QLCportion, or a PLC portion of memory cells. The memory cells of thememory devices 130 can be grouped as pages that can refer to a logicalunit of the memory device used to store data. With some types of memory(e.g., NAND), pages can be grouped to form blocks.

Although non-volatile memory components such as a 3D cross-point arrayof non-volatile memory cells and NAND type flash memory (e.g., 2D NAND,3D NAND) are described, the memory device 130 can be based on any othertype of non-volatile memory, such as read-only memory (ROM), phasechange memory (PCM), self-selecting memory, other chalcogenide basedmemories, ferroelectric transistor random-access memory (FeTRAM),ferroelectric random access memory (FeRAM), magneto random access memory(MRAM), Spin Transfer Torque (STT)-MRAM, conductive bridging RAM(CBRAM), resistive random access memory (RRAM), oxide based RRAM(OxRAM), negative-or (NOR) flash memory, or electrically erasableprogrammable read-only memory (EEPROM).

A memory sub-system controller 115 (or controller 115 for simplicity)can communicate with the memory devices 130 to perform operations suchas reading data, writing data, or erasing data at the memory devices 130and other such operations. The memory sub-system controller 115 caninclude hardware such as one or more integrated circuits and/or discretecomponents, a buffer memory, or a combination thereof. The hardware caninclude a digital circuitry with dedicated (i.e., hard-coded) logic toperform the operations described herein. The memory sub-systemcontroller 115 can be a microcontroller, special purpose logic circuitry(e.g., a field programmable gate array (FPGA), an application specificintegrated circuit (ASIC), etc.), or other suitable processor.

The memory sub-system controller 115 can include a processing device,which includes one or more processors (e.g., processor 117), configuredto execute instructions stored in a local memory 119. In the illustratedexample, the local memory 119 of the memory sub-system controller 115includes an embedded memory configured to store instructions forperforming various processes, operations, logic flows, and routines thatcontrol operation of the memory sub-system 110, including handlingcommunications between the memory sub-system 110 and the host system120.

In some embodiments, the local memory 119 can include memory registersstoring memory pointers, fetched data, etc. The local memory 119 canalso include read-only memory (ROM) for storing micro-code. While theexample memory sub-system 110 in FIG. 1 has been illustrated asincluding the memory sub-system controller 115, in another embodiment ofthe present disclosure, a memory sub-system 110 does not include amemory sub-system controller 115, and can instead rely upon externalcontrol (e.g., provided by an external host, or by a processor orcontroller separate from the memory sub-system).

In general, the memory sub-system controller 115 can receive commands oroperations from the host system 120 and can convert the commands oroperations into instructions or appropriate commands to achieve thedesired access to the memory devices 130. The memory sub-systemcontroller 115 can be responsible for other operations such as wearleveling operations, garbage collection operations, error detection anderror-correcting code (ECC) operations, encryption operations, cachingoperations, and address translations between a logical address (e.g., alogical block address (LBA), namespace) and a physical address (e.g.,physical block address) that are associated with the memory devices 130.The memory sub-system controller 115 can further include host interfacecircuitry to communicate with the host system 120 via the physical hostinterface. The host interface circuitry can convert the commandsreceived from the host system into command instructions to access thememory devices 130 as well as convert responses associated with thememory devices 130 into information for the host system 120.

The memory sub-system 110 can also include additional circuitry orcomponents that are not illustrated. In some embodiments, the memorysub-system 110 can include a cache or buffer (e.g., DRAM) and addresscircuitry (e.g., a row decoder and a column decoder) that can receive anaddress from the memory sub-system controller 115 and decode the addressto access the memory devices 130.

In some embodiments, the memory devices 130 include local mediacontrollers 135 that operate in conjunction with memory sub-systemcontroller 115 to execute operations on one or more memory cells of thememory devices 130. An external controller (e.g., memory sub-systemcontroller 115) can externally manage a memory device 130 (e.g., performmedia management operations on the memory device 130). In someembodiments, memory sub-system 110 is a managed memory device, which isa raw memory device 130 having control logic (e.g., local mediacontroller 135) on the die and a controller (e.g., memory sub-systemcontroller 115) for media management within the same memory devicepackage. An example of a managed memory device is a managed NAND (MNAND)device.

In some embodiments, the controller 115 includes a scanner 113 thatperforms the data selections across the wordlines and the scanningdescribed herein. The scanner 113 can also include, for example, anerror-correcting code (ECC) encoder/decoder. The ECC encoder/decoder canperform ECC encoding for data written to wordlines of the memory devices130 and ECC decoding for data read from the wordlines of the memorydevices 130, respectively. The ECC decoding can be performed to decodean ECC codeword to correct errors in the raw read data, and in manycases also to report the number of bit errors in the raw read data. Thescanner can take other corrective actions as well in response to errordetection. In alternative embodiments, the control logic of the scanner113 is at least partially also located within the local media controller135 of the memory device 130.

FIG. 2A is an example schematic diagram of data selection from multiplesub-blocks of a wordline for performing scanning of the wordline, inaccordance with some embodiments. In one embodiment, a memory portion130A of the memory device 130 contains multiple pages (e.g., page 0,page 1, page 2, page 3) corresponding to multiple sub-blocks (e.g., SB0,SB1, SB2, SB3, respectively). The memory portion 130A is illustrated ashaving four sub-blocks, but fewer or more sub-blocks can define awordline (WL0) in different embodiments. Each sub-block SB0, SB1, SB2,and SB3 includes multiple groups of cells 201, 202, 203, and 204,respectively.

In some embodiments, the controller 115 (e.g., processing device)selects, to sample first data of the wordline (WL0), a first group 202Aof the groups of memory cells 201 of a first sub-block (SB0) of themultiple sub-blocks. The controller 115 further selects, to samplesecond data of the wordline (WL0), a second group 202B of the groups ofmemory cells 202 of a second sub-block (SB1) of the plurality ofsub-blocks. The controller 115 further selects, to sample third data ofthe wordline (WL0), a third group of the groups of memory cells 203 of athird sub-block (SB2) of the multiple of sub-blocks. The controllerfurther selects, to sample fourth data of the wordline (WL0), a fourthgroup of the groups of memory cells 204 of a fourth sub-block (SB3) ofthe multiple sub-blocks.

In this way, the selected group of memory cells in each sub-block isstaggered across respective groups of cells of each respectivesub-block. While the illustrated embodiment staggers the selected groupof cells sequentially, e.g., the first group, the second group, thethird group, and the fourth group of memory cells 201A, 202B, 203C, and204D, other embodiments can stagger the selected group of memory cellsin different way, including randomly. In the embodiment of FIG. 2A, thecontroller 115 can further concurrently read the first data, the seconddata, the third data, and the fourth data, and perform an error check ofthe wordline using the first data, the second data, the third data, andthe fourth data to complete performance of the scanning of the wordline(WL0).

FIG. 2B is a further example schematic diagram of data selection frommultiple sub-blocks of a wordline for performing scanning of thewordline, in accordance with some embodiments. In another embodiment, amemory portion 130B of the memory device 130 contains multiple pagescorresponding to multiple sub-blocks. In one embodiment, the memoryportion 130B is a more-detailed version of the memory portion 130Adiscussed with reference to FIG. 2A. The memory portion 130A isillustrated as having four sub-blocks (numbered 0, 1, 2, and 3 forpurposes of explanation), but fewer or more sub-blocks can definemultiple wordlines (WL0 . . . WL3) in different embodiments. The memoryportion 130A can be understood to illustrate one implementation in whicheach sub-block is 16 kilobytes (KB) in size, which includes four groupsof memory cells, each being 4 KB in size, but different sizes of eachsub-block and each group of sub-blocks are envisioned.

In various embodiments, each group of memory cells includes a selectgate that can be separately enabled (e.g., turned ON) to read the dataof the group of memory cells at once or disabled (e.g., turned OFF) toprevent reading any data. Thus, for example, the first sub-blockincludes a first select gate (SG 0A), a second selected gate (SG 0B), athird select gate (SG OC), and a fourth select gate (SG 0D),respectively for first groups of memory cells. Further, the secondsub-block includes a first select gate (SG 1A), a second selected gate(SG 1), a third select gate (SG 1C), and a fourth select gate (SG 1D),respectively for second groups of memory cells. Additionally, the thirdsub-block includes a first select gate (SG 2A), a second selected gate(SG 2 n), a third select gate (SG 2C), and a fourth select gate (SG 2D),respectively for third groups of memory cells. Finally, the fourthsub-block includes a first select gate (SG 3A), a second selected gate(SG 3 n), a third select gate (SG 3C), and a fourth select gate (SG 3D),respectively for fourth groups of memory cells.

In the embodiments of FIG. 2B, the memory portion 130B includes foursense amplifiers 215 that can read a sub-block of data at a time. Inorder to stagger the sub-block of data across a wordline when performinga scan of that wordline, the scanner 113 can selectively enable (ordisable) the first select gate (SG 0A) of the first sub-block, thesecond select gate (SG 1B) of the second sub-block, the third selectgate (SG 2C) of the third sub-block, and the fourth select gate (SG 3D)of the fourth sub-block, to concurrently read the data from the firstgroup of memory cells of the first sub-block, the second group of memorycells of the second sub-block, the third group of memory cells of thethird sub-block, and the fourth group of memory cells of the fourthsub-block, respectively. The concurrent scan of 4 KB groups of memorycells from different sub-blocks replace four separate read operations,one on each sub-block of the four sub-blocks. This reduction of scanningreduces read overhead by 75%.

In this way, the groups of memory cells that are selected are staggeredsequentially across the four sub-blocks of the wordlines being scannedfor defects. The enablement of the select gates by the scanner 113 canbe performed via the respective sense amplifiers SA-A, SA-B, SA-C, andSA-D, which can be multiplexed, one for the select gates of eachsub-block of the four sub-blocks. In other embodiments, the selectionsof the groups of memory cells is in reverse sequential order or ordereddifferently, including randomly, across the groups of memory cells.Thus, the embodiment of sequentially selecting the groups of memorycells across the multiple sub-blocks is for ease of illustration andexplanation.

FIG. 3A is an example schematic diagram of using a mask wordline fordata selection from multiple sub-blocks of a wordline for performingscanning of the wordline, in accordance with some embodiments. Accordingto a further embodiment, in a memory portion 130C of the memory device130, there is a common select gate enable signal that enables (turns ON)each of the select gates of a sub-block, e.g., enable signals VSG0,VSG1, VSG 2 in FIG. 3B. Therefore, the scanner 113 can either turn allof the groups of memory cells ON or all of the groups of memory cellsOFF for a particular sub-block. This shared select gate enable signalarchitecture makes the implementations described with reference to FIGS.2A-2B not possible.

To provide an alternative embodiment in this type of architecture, thescanner 113 can cause a wordline (MWL) to be programmed with a mask. Toprogram the mask wordline (MWL), control logic of the memory device 130causes to be programmed, to a first voltage level (1^(st) VL), eachrespective of the groups of memory cells that alternate across thewordline. Thus, the memory device 130 directed to program the mask canprogram, to the first voltage level, a first group (1^(st) Group) of thegroups of memory cells of a first sub-block (SB0) of the multiplesub-blocks, a second group (2^(nd) Group) of the groups of memory cellsof a second sub-block (SB1) of the multiple sub-blocks, a third group(3^(rd) Group) of the groups of memory cells of a third sub-block (SB2)of the multiple sub-blocks, and a fourth group (4^(th) Group) of thegroups of memory cells of a fourth sub-block (SB3) of the multiplesub-blocks. Again, while the first group, the second group, the thirdgroup, and the fourth group of the groups of memory cells selectedacross the four sub-blocks (SB0, SB1, SB2, SB3) are sequentiallynumbered, other embodiments select the groups of memory cells in reversesequence, randomly, or other order. The memory device 130, as part ofprogramming the mask, further causes a reminder of the groups of memoryblocks to be programmed to a second voltage level.

In a first embodiment, the first voltage level is a low (e.g., digital“0”) voltage level and the second voltage level is a high (e.g., digital“1”) voltage level, although different voltages values are envisionedwhere the second voltage level is higher than the first voltage level.The low voltage level causes the gate at that cell to turn ON and thuspass data while a high voltage level causes the gates to be turned OFFand thus act as an open circuit. In a second embodiment, the firstvoltage level is a high voltage level and the second voltage level is alow voltage level, where the select gates cause switching opposite tothat of the first embodiment.

When a wordline is to be scanned, the controller 115 can cause a customwordline voltage to be applied to the wordline (e.g., WL0, WL1, WL2,WL3, or the like). The custom wordline voltage can be adapted to selectgroups of memory cells corresponding to those of the mask wordlineprogrammed to the first voltage level, and to unselect groups of memorycells corresponding to those of the mask wordline programmed to thesecond voltage level. As illustrated, the darkened “1^(st) VL” groups ofmemory cells are thus selected and the lighter “2^(nd) VL” groups ofmemory cells are unselected. This means that 75% of the groups of memorycells across the multiple sub-blocks are not selected. The controller115 can further concurrently read data from the selected groups ofmemory cells of the second wordline, while the unselected groups ofmemory cells are not read because they are open circuits. The controller115 can then perform, using the data, an error check of the secondwordline.

FIG. 3B is an example gate diagram version of the schematic diagram ofFIG. 3A, in accordance with an embodiment. This schematic diagramillustrates three sub-blocks of the memory portion 103C of FIG. 3A forpurposes of illustration, namely the first sub-block (SB0), the secondsub-block (SB1), and the third sub-block (SB2). A row of sets ofswitches 318 (e.g., transistors) in a memory array 302 include theselect gates referred to previously as SG0A . . . SG0D, SG1A . . . SG1D,and SG2A . . . SG2D that selectively enable reading data from therespective groups of memory cells of these sub-blocks. The set ofswitches 318 for the first sub-block (SB0) is turned ON by a VSG0 gateenable signal, the set of switches for the second sub-block (SB1) isturned ON by a VSG1 gate enable signal, and the set of switches for thethird sub-block (SB0) is turned ON by a VSG2 gate enable signal, whereVSGx turns on a specific sub-block designated by “x.” In this way, theset of switches 318 can enable and disable access to each of the groupsof memory cells with which the set of switches 318 are coupled.

In various embodiments, the mask wordline (Mask WL) is programmed asdiscussed with reference to FIG. 3A (with low voltage level as a boldedL and high voltage level as a bolded H) and coupled to each set ofswitches 318. The patterned mask programmed into the mask wordline canact as a next layer of selector signals to enable (or activate) sampledselection of varying groups of memory cells across the multiplesub-blocks.

In these embodiments, the multiple sub-blocks of the mask wordline arecoupled between each set of switches 318 and the multiple sub-blocks ofa second wordline, e.g., the selected data wordline (WLZ) to which thecustom wordline voltage (VWL) is applied. Unselected data wordlines(WLX, WLY) can have a conventional voltage applied (VPASSR), which turnsON the unselected wordlines normally. Selected wordlines are selectedfor scanning while unselected wordlines are enabled to ensure theunselected wordline turned ON and transistors on selected wordlinesbehave as transparent devices.

In various embodiments, after the remaining wordlines are programmed andscanned, the unmasked portion of the mask wordline (MWL) can beprogrammed with user data. In other words, after performing the scanningof the multiple wordlines of which the memory array is a part, thecontroller 115 can cause the unselected groups of memory cells to beprogrammed with data (such as user data). Using this approach, insteadof wasting a full wordline for the mask, the portion of the wordline canbe recovered to stored user data, thus avoiding wasting 75% of the maskwordline.

FIG. 4A is a graph illustrating a first set of read voltage levelsemployed in a mask mode for writing to the memory array 302, inaccordance with an embodiment. As discussed with reference to FIGS.3A-3B, the low voltage level can correspond to the selected portion ofthe mask wordline while the high voltage level can correspond to theunselected portions of the mask wordline (although these voltage levelscan be reversed to encode the opposite selections in other embodiments).In one embodiment, the portions of the mask that are erased orprogrammed to the low voltage level is 4 KB per sub-block and theportions of the mask that are programmed high is 12 KB per sub-block.

Until the remaining wordlines are programmed and scanned, the datawordline can be used in the mask mode providing the template for thecustom wordline voltage, as discussed. Before the physical block isclosed (of which the sub-blocks are a part), the controller 115 cancause the memory device 130 to switch to a data mode for programming themask wordline, in which the voltage threshold (Vt) definitions arechanged to correspond normal data levels. FIG. 4B is graph illustratinga second set of read voltage levels employed in a data mode for writinga memory array, in accordance with an embodiment, only for purposes ofexemplary explanation. In the illustrated embodiment, there are threedata voltage levels, namely a first low data voltage level for 2 KB ofmemory cells per sub-block, a second low voltage level for 6 KB ofmemory cells per sub-block, and a high voltage level for 8 KB of memorycells per sub-block.

Thus, in some embodiments, the controller 115 causes a memory device 130containing the memory array 302 to operate in a mask mode whileperforming the scanning on multiple wordlines of which the memory arrayis a part, where the first voltage level is at a first threshold voltagelevel and the second voltage level is at a second threshold voltagelevel. IN these embodiments, the controller 115 further causes thememory device 130 to operate in a data mode after completion of thescanning. The data mode causes the memory cells of the first wordline tobe programmed with a set of threshold voltage levels designed forsubsequent read operations at multiple data levels different than thefirst and second threshold voltage levels, e.g., meant for normal readoperations.

FIG. 5 is a flow diagram of an example method 500 of selecting data frommultiple sub-blocks of a wordline for performing scanning of thewordline, in accordance with some embodiments. The method 500 can beperformed by processing logic that can include hardware (e.g.,processing device, circuitry, dedicated logic, programmable logic,microcode, hardware of a device, integrated circuit, etc.), software(e.g., instructions run or executed on a processing device), or acombination thereof. In some embodiments, the method 500 is performed bythe scanner 113 of FIG. 1 . Although shown in a particular sequence ororder, unless otherwise specified, the order of the processes can bemodified. Thus, the illustrated embodiments should be understood only asexamples, and the illustrated processes can be performed in a differentorder, and some processes can be performed in parallel. Additionally,one or more processes can be omitted in various embodiments. Thus, notall processes are required in every embodiment. Other process flows arepossible.

At operation 510, the processing logic selects, to sample first data ofa wordline, a first group of the groups of memory cells of a firstsub-block of multiple sub-blocks.

At operation 520, the processing logic selects, to sample second data ofthe wordline, a second group of the groups of memory cells of a secondsub-block of the multiple sub-blocks.

At operation 530, the processing logic optionally also selects, tosample third data of the wordline, a third group of the groups of memorycells of a third sub-block of the multiple sub-blocks.

At operation 540, the processing logic optionally also selects, tosample fourth data of the wordline, a fourth group of the groups ofmemory cells of a fourth sub-block of the multiple sub-blocks.

At operation 550, the processing logic concurrently reads the first datafrom the first group, the second data from the second group of thegroups of memory cells, and optionally also the third data from thethird group and the fourth data from the fourth group of memory cellsacross the wordline.

At operation 560, the processing logic performing an error check of thewordline using the first data, the second data, and optionally alsousing the third data and the fourth data. The method 500 can furtherincludes taking a corrective action in response to detecting a defect inthe wordline based on results of the error check.

FIG. 6 is a flow diagram of an example method 600 of employing a maskfor selecting data from multiple sub-blocks of a wordline for performingscanning of the wordline, in accordance with some embodiments. Themethod 600 can be performed by processing logic that can includehardware (e.g., processing device, circuitry, dedicated logic,programmable logic, microcode, hardware of a device, integrated circuit,etc.), software (e.g., instructions run or executed on a processingdevice), or a combination thereof. In some embodiments, the method 600is performed by the scanner 113 of FIG. 1 . Although shown in aparticular sequence or order, unless otherwise specified, the order ofthe processes can be modified. Thus, the illustrated embodiments shouldbe understood only as examples, and the illustrated processes can beperformed in a different order, and some processes can be performed inparallel. Additionally, one or more processes can be omitted in variousembodiments. Thus, not all processes are required in every embodiment.Other process flows are possible.

At operation 610, the processing logic causes a first wordline to beprogrammed through a plurality of sub-blocks of a memory array with amask by causing to be programmed two or more of groups of memory cells,including, at operation 615, a first group of groups of memory cells ofa first sub-block of the plurality of sub-blocks, and at operation 620,a second group of groups of memory cells of a second sub-block of theplurality of sub-blocks. The programming of the mask can be optionallyextended by causing to be programmed, to the first voltage level, atoperation 625, a third group of the groups of memory cells of a thirdsub-block of the plurality of sub-blocks, and at operation 630, a fourthgroup of the groups of memory cells of a fourth sub-block of theplurality of sub-blocks. The optional programming of the third group andthe fourth group of memory cells is indicated by dashed lines.

At operation 635, the programming of the mask further includes theprocessing logic causing to be programmed, to a second voltage level, aremainder of the groups of memory cells of the first sub-block, of thesecond sub-block, and optionally also of the third block and the fourthblock, that were not programmed to the first voltage level.

At operation 640, the processing logic performs scanning of a secondwordline that has been programmed and is coupled to the first wordline.Performing the scanning can be carried out in operations 645, 650, and655.

At operation 645, the processing logic causes a custom wordline voltageto be applied to the second wordline. The custom wordline voltage canselect groups of memory cells corresponding to those of the firstwordline programmed to the first voltage level, and unselect groups ofmemory cells corresponding to those of the first wordline programmed tothe second voltage level.

At operation 650, the processing logic concurrently reads data from theselected groups of memory cells of the second wordline performed atoperation 645.

At operation 655, the processing logic performs, using the data, anerror check of the second wordline. The method 600 can further includestaking a corrective action in response to detecting a defect in thesecond wordline based on results of the error check.

FIG. 7 illustrates an example machine of a computer system 700 withinwhich a set of instructions, for causing the machine to perform any oneor more of the methodologies discussed herein, can be executed. In someembodiments, the computer system 700 can correspond to a host system(e.g., the host system 120 of FIG. 1 ) that includes, is coupled to, orutilizes a memory sub-system (e.g., the memory sub-system 110 of FIG. 1) or can be used to perform the operations of a controller (e.g., toexecute an operating system to perform operations corresponding to thescanner 113 of FIG. 1 ). In alternative embodiments, the machine can beconnected (e.g., networked) to other machines in a LAN, an intranet, anextranet, and/or the Internet. The machine can operate in the capacityof a server or a client machine in client-server network environment, asa peer machine in a peer-to-peer (or distributed) network environment,or as a server or a client machine in a cloud computing infrastructureor environment.

The machine can be a personal computer (PC), a tablet PC, a set-top box(STB), a Personal Digital Assistant (PDA), a cellular telephone, a webappliance, a server, a network router, a switch or bridge, or anymachine capable of executing a set of instructions (sequential orotherwise) that specify actions to be taken by that machine. Further,while a single machine is illustrated, the term “machine” shall also betaken to include any collection of machines that individually or jointlyexecute a set (or multiple sets) of instructions to perform any one ormore of the methodologies discussed herein.

The example computer system 700 includes a processing device 702, a mainmemory 704 (e.g., read-only memory (ROM), flash memory, dynamic randomaccess memory (DRAM) such as synchronous DRAM (SDRAM) or Rambus DRAM(RDRAM), etc.), a static memory 710 (e.g., flash memory, static randomaccess memory (SRAM), etc.), and a data storage system 718, whichcommunicate with each other via a bus 730.

Processing device 702 represents one or more general-purpose processingdevices such as a microprocessor, a central processing unit, or thelike. More particularly, the processing device can be a complexinstruction set computing (CISC) microprocessor, reduced instruction setcomputing (RISC) microprocessor, very long instruction word (VLIW)microprocessor, or a processor implementing other instruction sets, orprocessors implementing a combination of instruction sets. Processingdevice 702 can also be one or more special-purpose processing devicessuch as an application specific integrated circuit (ASIC), a fieldprogrammable gate array (FPGA), a digital signal processor (DSP),network processor, or the like. The processing device 702 is configuredto execute instructions 728 for performing the operations and stepsdiscussed herein. The computer system 700 can further include a networkinterface device 712 to communicate over the network 720.

The data storage system 718 can include a machine-readable storagemedium 724 (also known as a computer-readable medium) on which is storedone or more sets of instructions 728 or software embodying any one ormore of the methodologies or functions described herein. Theinstructions 728 can also reside, completely or at least partially,within the main memory 704 and/or within the processing device 702during execution thereof by the computer system 700, the main memory 704and the processing device 702 also constituting machine-readable storagemedia. The machine-readable storage medium 724, data storage system 718,and/or main memory 704 can correspond to the memory sub-system 110 ofFIG. 1 .

In one embodiment, the instructions 726 include instructions toimplement functionality corresponding to a scanner (e.g., the scanner113 of FIG. 1 ). While the machine-readable storage medium 724 is shownin an example embodiment to be a single medium, the term“machine-readable storage medium” should be taken to include a singlemedium or multiple media that store the one or more sets ofinstructions. The term “machine-readable storage medium” shall also betaken to include any medium that is capable of storing or encoding a setof instructions for execution by the machine and that cause the machineto perform any one or more of the methodologies of the presentdisclosure. The term “machine-readable storage medium” shall accordinglybe taken to include, but not be limited to, solid-state memories,optical media, and magnetic media.

Some portions of the preceding detailed descriptions have been presentedin terms of algorithms and symbolic representations of operations ondata bits within a computer memory. These algorithmic descriptions andrepresentations are the ways used by those skilled in the dataprocessing arts to most effectively convey the substance of their workto others skilled in the art. An algorithm is here, and generally,conceived to be a self-consistent sequence of operations leading to adesired result. The operations are those requiring physicalmanipulations of physical quantities. Usually, though not necessarily,these quantities take the form of electrical or magnetic signals capableof being stored, combined, compared, and otherwise manipulated. It hasproven convenient at times, principally for reasons of common usage, torefer to these signals as bits, values, elements, symbols, characters,terms, numbers, or the like.

It should be borne in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. The presentdisclosure can refer to the action and processes of a computer system,or similar electronic computing device, that manipulates and transformsdata represented as physical (electronic) quantities within the computersystem's registers and memories into other data similarly represented asphysical quantities within the computer system memories or registers orother such information storage systems.

The present disclosure also relates to an apparatus for performing theoperations herein. This apparatus can be specially constructed for theintended purposes, or it can include a general purpose computerselectively activated or reconfigured by a computer program stored inthe computer. Such a computer program can be stored in acomputer-readable storage medium, such as, but not limited to, any typeof disk including floppy disks, optical disks, CD-ROMs, andmagnetic-optical disks, read-only memories (ROMs), random accessmemories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any typeof media suitable for storing electronic instructions, each coupled to acomputer system bus.

The algorithms and displays presented herein are not inherently relatedto any particular computer or other apparatus. Various general purposesystems can be used with programs in accordance with the teachingsherein, or it can prove convenient to construct a more specializedapparatus to perform the method. The structure for a variety of thesesystems will appear as set forth in the description below. In addition,the present disclosure is not described with reference to any particularprogramming language. It will be appreciated that a variety ofprogramming languages can be used to implement the teachings of thedisclosure as described herein.

The present disclosure can be provided as a computer program product, orsoftware, that can include a machine-readable medium having storedthereon instructions (e.g., a non-transitory computer-readable mediumstoring instructions), which can be used to program a computer system(or other electronic devices) to perform a process according to thepresent disclosure. A machine-readable medium includes any mechanism forstoring information in a form readable by a machine (e.g., a computer).In some embodiments, a machine-readable (e.g., computer-readable) mediumincludes a machine (e.g., a computer) readable storage medium such as aread only memory (“ROM”), random access memory (“RAM”), magnetic diskstorage media, optical storage media, flash memory devices, etc.

In the foregoing specification, embodiments of the disclosure have beendescribed with reference to specific example embodiments thereof. Itwill be evident that various modifications can be made thereto withoutdeparting from the broader spirit and scope of embodiments of thedisclosure as set forth in the following claims. The specification anddrawings are, accordingly, to be regarded in an illustrative senserather than a restrictive sense.

What is claimed is:
 1. A system comprising: a memory array comprising aplurality of sub-blocks, each sub-block of the plurality of sub-blockscomprising groups of memory cells; and a processing device, operativelycoupled with the memory array, the processing device to performoperations comprising: causing a first wordline to be programmed throughthe plurality of sub-blocks with a mask by causing to be programmed, toa first voltage level: a first group of the groups of memory cells of afirst sub-block of the plurality of sub-blocks; and a second group ofthe groups of memory cells of a second sub-block of the plurality ofsub-blocks; and performing scanning of a second wordline that has beenprogrammed and is coupled to the first wordline, wherein performingscanning comprises: causing a custom wordline voltage to be applied tothe second wordline, the custom wordline voltage to select groups ofmemory cells corresponding to those of the first wordline programmed tothe first voltage level; concurrently reading data from the selectedgroups of memory cells of the second wordline; and performing, using thedata, an error check of the second wordline.
 2. The system of claim 1,wherein operations for causing the first wordline to be programmedthrough the plurality of sub-blocks with the mask further comprisecausing to be programmed, to a second voltage level, a remainder of thegroups of memory cells of the first sub-block and of the secondsub-block that were not programmed to the first voltage level, whereinthe first voltage level is lower than the second voltage level; andperforming the scanning further comprises unselecting groups of memorycells corresponding to those of the first wordline programmed to thesecond voltage level.
 3. The system of claim 2, wherein the operationsfurther comprise, after performing the scanning of a plurality ofwordlines of which the memory array comprises, causing the unselectedgroups of memory cells to be programmed with data.
 4. The system ofclaim 2, wherein the operations for causing the first wordline to beprogrammed further comprise: causing to be programmed, to the firstvoltage level: a third group of the groups of memory cells of a thirdsub-block of the plurality of sub-blocks; and a fourth group of thegroups of memory cells of a fourth sub-block of the plurality ofsub-blocks, and causing to be programmed, to the second voltage, aremainder of the groups of memory cells of the third sub-block and thefourth sub-block.
 5. The system of claim 4, wherein the groups of memorycells of each sub-block of the plurality of sub-blocks comprises a firstgroup, a second group, a third group, and a fourth group of memory cellsthat are each sequentially numbered.
 6. The system of claim 1, furthercomprising a set of switches to enable and disable access to each groupof the groups of memory cells, wherein the plurality of sub-blocks ofthe first wordline are coupled between each set of switches and theplurality of sub-blocks of the second wordline.
 7. The system of claim1, wherein the operations further comprise taking a corrective action inresponse to detecting a defect in the second wordline based on resultsof the error check.
 8. A method comprising: causing a first wordline tobe programmed through a plurality of sub-blocks of a memory array with amask by causing to be programmed, to a first voltage level: a firstgroup of groups of memory cells of a first sub-block of the plurality ofsub-blocks; and a second group of groups of memory cells of a secondsub-block of the plurality of sub-blocks; and performing scanning of asecond wordline that has been programmed and is coupled to the firstwordline, wherein performing scanning comprises: causing a customwordline voltage to be applied to the second wordline, the customwordline voltage to select groups of memory cells corresponding to thoseof the first wordline programmed to the first voltage level;concurrently reading data from the selected groups of memory cells ofthe second wordline; and performing, using the data, an error check ofthe second wordline.
 9. The method of claim 8, wherein causing the firstwordline to be programmed through the plurality of sub-blocks furthercomprises causing to be programmed, to a second voltage level, aremainder of the groups of memory cells of the first sub-block and ofthe second sub-block that were not programmed to the first voltagelevel, wherein the first voltage level is lower than the second voltagelevel; and performing the scanning further comprises unselecting groupsof memory cells corresponding to those of the first wordline programmedto the second voltage level.
 10. The method of claim 9, furthercomprising, after performing the scanning of a plurality of wordlines ofwhich the memory array comprises, causing the unselected groups ofmemory cells to be programmed with data.
 11. The method of claim 9,wherein causing the first wordline to be programmed further comprises:causing to be programmed, to the first voltage level: a third group ofthe groups of memory cells of a third sub-block of the plurality ofsub-blocks; and a fourth group of the groups of memory cells of a fourthsub-block of the plurality of sub-blocks, and causing to be programmed,to the second voltage, a remainder of the groups of memory cells of thethird sub-block and the fourth sub-block.
 12. The method of claim 11,wherein the groups of memory cells of each sub-block of the plurality ofsub-blocks comprises a first group, a second group, a third group, and afourth group of memory cells that are each sequentially numbered. 13.The method of claim 9, further comprising: causing a memory devicecontaining the memory array to operate in a mask mode while performingthe scanning on a plurality of wordlines of which the memory arraycomprises, wherein the first voltage level is at a first thresholdvoltage level and the second voltage level is at a second thresholdvoltage level; and causing the memory device to operate in a data modeafter completion of the scanning, the data mode causing the memory cellsof the first wordline to be programmed with a set of threshold voltagelevels designed for subsequent read operations at multiple data levelsdifferent than the first and second threshold voltage levels.
 14. Themethod of claim 8, further comprising taking a corrective action inresponse to detecting a defect in the second wordline based on resultsof the error check.
 15. A non-transitory computer-readable mediumstoring instructions, which when executed by a processing device, causethe processing device to perform operations comprising: causing a firstwordline to be programmed through a plurality of sub-blocks of a memoryarray with a mask by causing to be programmed, to a first voltage level:a first group of groups of memory cells of a first sub-block of theplurality of sub-blocks; and a second group of groups of memory cells ofa second sub-block of the plurality of sub-blocks; and causing scanningto be performed of a second wordline that has been programmed and iscoupled to the first wordline, wherein causing the scanning to beperformed comprises: causing a custom wordline voltage to be applied tothe second wordline, the custom wordline voltage to select groups ofmemory cells corresponding to those of the first wordline programmed tothe first voltage level; causing data to be concurrently read from theselected groups of memory cells of the second wordline; and causing,using the data, an error check to be performed on the second wordline.16. The non-transitory computer-readable medium of claim 15, whereincausing the first wordline to be programmed through the plurality ofsub-blocks further comprises causing to be programmed, to a secondvoltage level, a remainder of the groups of memory cells of the firstsub-block and of the second sub-block that were not programmed to thefirst voltage level, wherein the first voltage level is lower than thesecond voltage level; and causing the scanning to be performed furthercomprises causing groups of memory cells to be unselected thatcorrespond to those of the first wordline programmed to the secondvoltage level.
 17. The non-transitory computer-readable medium of claim16, wherein the operations further comprise, after performing thescanning of a plurality of wordlines of which the memory arraycomprises, causing the unselected groups of memory cells to beprogrammed with data.
 18. The non-transitory computer-readable medium ofclaim 16, wherein causing the first wordline to be programmed furthercomprises: causing to be programmed, to the first voltage level: a thirdgroup of the groups of memory cells of a third sub-block of theplurality of sub-blocks; and a fourth group of the groups of memorycells of a fourth sub-block of the plurality of sub-blocks, and causingto be programmed, to the second voltage, a remainder of the groups ofmemory cells of the third sub-block and the fourth sub-block.
 19. Thenon-transitory computer-readable medium of claim 16, wherein the groupsof memory cells of each sub-block of the plurality of sub-blockscomprises a first group, a second group, a third group, and a fourthgroup of memory cells that are each sequentially numbered.
 20. Thenon-transitory computer-readable medium of claim 16, wherein theoperations further comprise taking a corrective action in response todetecting a defect in the second wordline based on results of the errorcheck.